package com.jmb.api.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.sql.Time;
import java.util.Date;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import lombok.Data;

/**
 * 接口依赖
 * @TableName api_test_case_rely_data
 */
@TableName(value ="api_test_case_rely_data")
@Data
public class ApiTestCaseRelyData extends BaseEntity {
    /**
     *  自增主键
     */

    @TableId(value = "rely_id", type = IdType.AUTO)
    private Integer relyId;

    /**
     * 依赖用例编号
     */
    @Schema(description = "依赖用例编号")
    @NotNull(message = "依赖用例编号不能为空")
    @TableField(value = "rely_case_id")
    private Integer relyCaseId;

    /**
     * 依赖名称,通过${name}引用
     */
    @Schema(description = "依赖名称,通过${name}引用")
    @Size(min = 1, max = 100, message = "依赖名称长度必须为[1,100]")
    @Pattern(regexp = "\\w+", message = "依赖名称必须为字母数字下划线")
    @NotBlank(message = "依赖名称不能为空")
    @TableField(value = "rely_name")
    private String relyName;

    /**
     * 依赖描述
     */
    @NotEmpty(message = "依赖描述不能为空")
    @Size(max = 100, message = "依赖描述长度必须为[0,100]")
    @TableField(value = "rely_desc")
    private String relyDesc;

    /**
     * 提取数据类型   0json/1html/2header/
     */
    @Schema(description = "提取数据类型   0json/1html/2header/")
    @Max(value = 2, message = "提取数据类型错误")
    @NotNull(message = "提取数据类型不能为空")
    @TableField(value = "content_type")
    private Integer contentType;

    /**
     * 提取表达式
     */
    @Schema(description = "提取表达式")
    @Size(max = 50, message = "提取表达式长度必须为[0,50]")
    @NotBlank(message = "提取表达式不能为空")
    @TableField(value = "extract_expression")
    private String extractExpression;


    /**
     * 创建人用户编号
     */
    @TableField(value = "creator_id")
    private Integer creatorId;

    /**
     * 创建人昵称
     */
    @TableField(value = "creator_name")
    private String creatorName;

    /**
     * 非创建人能否删除0是1否
     */
    @Schema(description = "非创建人能否删除0是1否")
    @NotNull(message = "请选择是否允许其他人删除")
    @Min(value = 0, message = "请选择是否允许其他人删除")
    @Max(value = 1, message = "请选择是否允许其他人删除")
    @TableField(value = "others_deletable")
    private Integer othersDeletable;

    /**
     * 非创建人能否修改0是1否
     */
    @NotNull(message = "请选择是否允许其他人编辑")
    @Min(value = 0, message = "请选择是否允许其他人编辑")
    @Max(value = 1, message = "请选择是否允许其他人编辑")
    @TableField(value = "others_modifiable")
    private Integer othersModifiable;
}